package middleware

import (
	"github.com/gin-gonic/gin"
	"github.com/honwee/awm/pkg/logger"
	"net/http"
)

// ErrorHandler 错误处理中间件
func ErrorHandler() gin.HandlerFunc {
	return func(c *gin.Context) {
		c.Next()

		// 检查是否有错误
		if len(c.Errors) > 0 {
			// 获取最后一个错误
			err := c.Errors.Last()
			logger.Logger.Sugar().Errorf("Request error: %v", err.Err)

			// 返回错误响应
			c.JSON(http.StatusInternalServerError, gin.H{
				"error": err.Error(),
			})
			return
		}
	}
}
